From 674f9f71095e5d2e539165dddf8f52bbcbf485d7 Mon Sep 17 00:00:00 2001 From: Wei Liu Date: Sun, 26 Aug 2018 13:19:35 +0100 Subject: [PATCH] xen: is_hvm_{domain,vcpu} should evaluate to false when !CONFIG_HVM Turn them into static inline functions which evaluate to false when CONFIG_HVM is not set. ARM won't be broken because ARM guests are set to PV type in the hypervisor. But ARM has plan to switch to HVM guest type inside the hypervisor, so preemptively introduce CONFIG_HVM for ARM here. Signed-off-by: Wei Liu Acked-by: Jan Beulich Acked-by: Julien Grall --- xen/arch/arm/Kconfig | 3 +++ xen/include/xen/sched.h | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/xen/arch/arm/Kconfig b/xen/arch/arm/Kconfig index 586bc62582..c0e969e45a 100644 --- a/xen/arch/arm/Kconfig +++ b/xen/arch/arm/Kconfig @@ -52,6 +52,9 @@ config HAS_ITS prompt "GICv3 ITS MSI controller support" if EXPERT = "y" depends on GICV3 && !NEW_VGIC +config HVM + def_bool y + config NEW_VGIC bool prompt "Use new VGIC implementation" diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h index 2cffb2c919..0ba80cb1a8 100644 --- a/xen/include/xen/sched.h +++ b/xen/include/xen/sched.h @@ -879,8 +879,17 @@ void watchdog_domain_destroy(struct domain *d); #define is_pv_domain(d) ((d)->guest_type == guest_type_pv) #define is_pv_vcpu(v) (is_pv_domain((v)->domain)) -#define is_hvm_domain(d) ((d)->guest_type == guest_type_hvm) -#define is_hvm_vcpu(v) (is_hvm_domain(v->domain)) + +static inline bool is_hvm_domain(const struct domain *d) +{ + return IS_ENABLED(CONFIG_HVM) ? d->guest_type == guest_type_hvm : false; +} + +static inline bool is_hvm_vcpu(const struct vcpu *v) +{ + return is_hvm_domain(v->domain); +} + #define is_pinned_vcpu(v) ((v)->domain->is_pinned || \ cpumask_weight((v)->cpu_hard_affinity) == 1) #ifdef CONFIG_HAS_PASSTHROUGH -- 2.30.2